Skip to content

Bump ldk-node dependency to 47dad6d909af0fbb53e76d07740c04df5abdde3b#230

Draft
enigbe wants to merge 1 commit into
lightningdevkit:mainfrom
enigbe:2026-06-bump-ldk-node
Draft

Bump ldk-node dependency to 47dad6d909af0fbb53e76d07740c04df5abdde3b#230
enigbe wants to merge 1 commit into
lightningdevkit:mainfrom
enigbe:2026-06-bump-ldk-node

Conversation

@enigbe

@enigbe enigbe commented Jun 9, 2026

Copy link
Copy Markdown

What this PR does:

Bumps the ldk-node dependency to revision 47dad6d, which, among other changes, contains the prerequisite for exposing NodeFeatures to ldk-server callers via the node status endpoint. We need this for callers interested in querying the features supported by the node.

Notable upstream changes adapted here

  • Bolt11Jit merged into Bolt11: ldk-node folded the JIT payment variant into Bolt11, adding a counterparty_skimmed_fee_msat field. The Bolt11Jit proto message, its serde attribute in build.rs, and the corresponding proto_adapter arm are all removed. The original proto tag numbers for Bolt12Offer (4), Bolt12Refund (5), and Spontaneous (6) are preserved — tag 3 is reserved to avoid wire-compatibility issues with previously-serialized Bolt11Jit data.

  • PaymentForwarded event restructured around HTLCLocator: The six flat channel/node/user-channel-id fields are replaced by prev_htlcs and next_htlcs (Vec<HTLCLocator>), supporting multi-HTLC forwards. The legacy scalar fields are retained in the proto as deprecated, populated from the first element of each vec for backward compatibility (not sure if this is the correct way to handle this).

Update ldk-node to a newer revision and adapt ldk-server to the
changed payment event surface. PaymentForwarded now preserves the full
prev_htlcs and next_htlcs vectors in the gRPC model while keeping the
legacy scalar channel/node fields populated from the first HTLC for
compatibility.

Remove the Bolt11Jit payment kind as a breaking API change. JIT BOLT 11
payments are now represented as regular Bolt11 payments with
counterparty_skimmed_fee_msat set when applicable, and the former oneof
tag/name are reserved in the proto.

Regenerate protobuf bindings and drop the obsolete Bolt11Jit serde
attribute.

AI-Assisted-By: OpenAI Codex
@ldk-reviews-bot

Copy link
Copy Markdown

👋 Hi! I see this is a draft PR.
I'll wait to assign reviewers until you mark it as ready for review.
Just convert it out of draft status when you're ready for review!

@benthecarman

Copy link
Copy Markdown
Collaborator

Can you bump to 00dba456a10cb60172eaa74e0a8b11c5e0473dcc? This will have some of the async persistence fixes and includes the new kv stores that I want to add

Comment on lines +33 to +34
reserved 3;
reserved "bolt11_jit";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we aren't worrying about backwards compat yet so you can remove this

// See more: https://docs.rs/ldk-node/latest/ldk_node/enum.Event.html#variant.PaymentForwarded
message ForwardedPayment{
// The channel id of the incoming channel between the previous node and us.
// Deprecated: use `prev_htlcs` instead. This is populated from `prev_htlcs[0]`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if these fields are deprecated it's probably best if we drop them all

//
// Will only be `Some` once we received the payment.
optional uint64 counterparty_skimmed_fee_msat = 5;
// Replaces the former `PaymentKind.bolt11_jit.counterparty_skimmed_fee_msat`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we dont need to mention the old format, we haven't released yet so no one knows the former one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants